package viewInterfaces;

import view.ViewDBConnectionSetup;
import controller.ControllerDBConnectionSetup;
import controllerInterfaces.IControllerDBConnectionSetup;

/**
*
* Interface of {@link ViewDBConnectionSetup} controller class according to Abstract Factory design pattern.
*/
public interface IViewDBConnectionSetup extends IViewFrame {
	
	/**
	 * Set the MVC++ Controller Class for this View.</br>
	 * ControllerDBConnectionSetup is manipulable through {@link IControllerDBConnectionSetup} interface
	 * @param	controller	MVC++ Controller
	 * @see	ControllerDBConnectionSetup
	 * @see IControllerDBConnectionSetup
	 */	
	public void setController(IControllerDBConnectionSetup controller); 
	
	
	/**
	 * Set URI text field
	 * @param URI	database connection URI
	 */	
	public void setURI(String URI);
	
	
	/**
	 * Set user text field
	 * @param user	database connection user name
	 */	
	public void setUser(String user);
	
	
	/**
	 * Set password text field
	 * @param password	database connection user password
	 */	
	public void setPassword(String password);


	/**
	 * Render status of connection according to parameter code, message and value.
	 * @param code		code of status of connection
	 * @param message	message of status of connection
	 * @param value		successful connection is true, otherwise false.
	 */
	public void renderConnectionStatus(int code, String message, boolean value);
	
	
	/**
	 * Start connect to database.
	 */
	public void startConnect();	
	
	
	
	
}
